package com.eastfair.builder.service;

import com.eastfair.boot.service.SuperService;
import com.eastfair.builder.dto.ReportSiteDTO;
import com.eastfair.builder.entity.ReportSite;
import com.eastfair.builder.vo.ReportSiteVO;
import com.eastfair.home.dto.ReportSiteAuditDTO;
import io.github.classgraph.utils.LogNode;

/**
 * <p>
 * 业务接口
 * 报馆展位基本信息
 * </p>
 *
 * @author dq
 * @date 2022 -08-06
 */
public interface ReportSiteService extends SuperService<ReportSite> {

    /**
     * 报馆ID查询展位基本信息.
     *
     * @param reportSpaceId the report space id
     * @return the report site vo by report space id
     */
    ReportSiteVO getVOByReportSpaceId(Long reportSpaceId);

    /**
     * 获取展位基本信息.
     *
     * @param query the query
     * @return the report site
     */
    ReportSite getReportSite(ReportSiteDTO query);

    /**
     * 报馆ID查询报馆基本信息
     *
     * @param reportSpaceId the report space id
     * @return the by report space id
     */
    ReportSite getByReportSpaceId(Long reportSpaceId);

    /**
     * 保存报馆展位基本信息.
     *
     * @param reportSiteDTO the report site dto
     * @return the boolean
     */
    ReportSite saveReportSite(ReportSiteDTO reportSiteDTO);

    /**
     * 更新报馆展位基本信息.
     *
     * @param reportSiteDTO the report site dto
     * @return the boolean
     */
    ReportSite updateReportSite(ReportSiteDTO reportSiteDTO);

    /**
     * 更新展位的是否吊点，是否单双层
     *
     * @param reportSite the report site
     * @return the boolean
     */
    boolean updateExhibitorIsDoubleAndIsPoint(ReportSite reportSite);

    /**
     * 报馆ID获取展位信息，并生成审核参数.
     *
     * @param reportSpaceId the report space id
     * @return the report site audit dto
     */
    ReportSiteAuditDTO createAuditByReportSpaceId(Long reportSpaceId);

    /**
     * 报馆ID移除报馆展位基本信息
     *
     * @param reportSpaceId the report space id
     * @return the boolean
     */
    boolean removeByReportSpaceId(Long reportSpaceId);
}
